package cn.wolfcode.crm.mapper;

import cn.wolfcode.crm.domain.Accident;
import cn.wolfcode.crm.domain.GuaranteeBill;
import cn.wolfcode.crm.query.AccidentQueryObject;
import cn.wolfcode.crm.query.AccidentQueryObjectForGuaranteeBill;
import cn.wolfcode.crm.query.QueryObject;

import java.util.List;
import java.util.Map;

public interface AccidentMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Accident record);

    Accident selectByPrimaryKey(Long id);

    List<Accident> selectAll();

    int updateByPrimaryKey(Accident record);

    int queryForCount(QueryObject qo);

    /*访问的页面不一样 但访问路径的数据都是一样的 只是状态的变化而显示想要过滤的数据*/
    List<Accident> queryForList(AccidentQueryObject qo);
    List<Accident> queryForList1(AccidentQueryObject qo);
    List<Accident> queryForList2(AccidentQueryObject qo);
    List<Accident> queryForList3(AccidentQueryObject qo);

    int queryForCountForGuaranteeBill(QueryObject qo);

    List<GuaranteeBill> queryForListForGuaranteeBill(AccidentQueryObjectForGuaranteeBill qo);


    /*用来显示列表的下拉框*/
    Long queryGtbIdByClientId(Long client_id);


    /*待验证转验证状态*/
    void changeStatus(Long id);

    /*已验证转待审核*/
    void changeStatus1(Long id);

    /*待审核转审核完*/
    void changeStatus2(Long id);

    /*审核完转已赔付*/
    void changeStatus3(Long id);


    /*待验证转废弃*/
    void changeStatus4(Long id);

    /*待审核转被拒审核*/
    void changeStatus5(Long id);

    /*判断是否填写了理赔单*/
    Integer hasCom(Long paramLong);


    /*根据数据字典查责任 责任是个下Integer selectByState(Long id);拉框*/
    List<Map<String, String>> selectForDuty(String duty);

    /* 根据客户id获取理赔单状态*/
    Integer selectByState(Long id);

}